From 480b3a06d1fd212851286a9803ffed70bbe3d9d9 Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 26 Feb 2008 15:11:07 +0000 Subject: [PATCH] stubdom: fix x86_32 compilation by __moddi3 from FreeBSD (like has been done previously for umoddi3 etc.) Signed-off-by: Samuel Thibault --- extras/mini-os/lib/math.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/extras/mini-os/lib/math.c b/extras/mini-os/lib/math.c index 807bcc8e0d..f1f7826080 100644 --- a/extras/mini-os/lib/math.c +++ b/extras/mini-os/lib/math.c @@ -388,6 +388,29 @@ __umoddi3(u_quad_t a, u_quad_t b) return (r); } +/* + * Return remainder after dividing two signed quads. + * + * XXX + * If -1/2 should produce -1 on this machine, this code is wrong. + */ +quad_t +__moddi3(quad_t a, quad_t b) +{ + u_quad_t ua, ub, ur; + int neg; + + if (a < 0) + ua = -(u_quad_t)a, neg = 1; + else + ua = a, neg = 0; + if (b < 0) + ub = -(u_quad_t)b; + else + ub = b; + (void)__qdivrem(ua, ub, &ur); + return (neg ? -ur : ur); +} #endif /* !defined(__ia64__) */ #ifndef HAVE_LIBC -- 2.30.2